package com.yixin.hospital.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yixin.hospital.common.ApiResult;
import com.yixin.hospital.entity.bo.PageInfo;
import com.yixin.hospital.entity.domain.User;
import com.yixin.hospital.entity.dto.req.user.LoginReqDTO;
import com.yixin.hospital.entity.dto.req.user.RegisterReqDTO;
import com.yixin.hospital.entity.dto.req.user.UserEditReqDTO;
import com.yixin.hospital.entity.vo.LoginVO;
import com.yixin.hospital.entity.vo.UserDeptWorkAddressJobOfficeVO;
import com.yixin.hospital.entity.vo.UserDetailVO;
import com.yixin.hospital.entity.vo.UserListVO;

import javax.servlet.http.HttpServletRequest;

/**
* @author Administrator
* @description 针对表【user(员工信息表)】的数据库操作Service
* @createDate 2024-05-13 15:40:28
*/
public interface UserService extends IService<User> {

    ApiResult<LoginVO> login(LoginReqDTO loginReqDTO, HttpServletRequest request);

    ApiResult<?> register(RegisterReqDTO registerReqDTO) throws Exception;

    ApiResult<PageInfo<UserListVO>> allList(int currentPage, int pageSize, String name, Long jobId, Long jobTitleId, Long queryJobDutyId, Integer status, Long userId);


    ApiResult<UserDetailVO> listDetail(Long userId) throws Exception;

    ApiResult<UserDetailVO> loginDetail(Long userId);

    ApiResult<?> edit(UserEditReqDTO userEditReqDTO);

    ApiResult<UserDeptWorkAddressJobOfficeVO> userDeptWorkAddressJobOffice(String phoneNumber);

    ApiResult<?> userDeptWorkAddressJobOffice(Long deptId);

    ApiResult<UserDetailVO> userLoginInfo(Long userId);
}
